package com.zjhhsd.blackJack.util;

import com.zjhhsd.blackJack.model.RoomInfo;
import com.zjhhsd.blackJack.model.UserInfo;

import java.util.ArrayList;
import java.util.Map;

public class RoomUtil {

    public static ArrayList<String> roomLog = new ArrayList<>();

    //轮换到下一个要牌人
    public static void setDemandUser(RoomInfo roomInfo){
        Map<String, UserInfo> userInfoMap = roomInfo.getMap();
        boolean isSetDemanded = false;
        int size = userInfoMap.size();
        for (Map.Entry<String,UserInfo> entry : userInfoMap.entrySet()) {
            UserInfo userInfo = entry.getValue();
            if(userInfo.getDemanded()){
                size--;
            }
            if (!isSetDemanded && !userInfo.getBoss() && !userInfo.getDemanded()) {
                //按照顺序检测，第一个不是庄家 且 没有要过牌的玩家设置为要牌人
                roomLog.add("当前是" + userInfo.getUsername() + "要牌");
                roomInfo.setDemandName(userInfo.getUsername());
                userInfo.setIdentity("要牌中");
                userInfo.setDemanded(true);
                isSetDemanded = true;//利用标志位 只设置一个即可
            }
        }
        if(size == 1 && !"等待开牌".equals(roomInfo.getStatus()) && !"开牌中".equals(roomInfo.getStatus())){
            //只有一个人没有要过牌，说明是只剩庄家没要牌，可以进入开牌状态
            roomLog.add("所有闲家都已停止要牌，庄家可进入开牌阶段");
            roomInfo.setStatus("等待开牌");
        }
    }
}
